Moderne programvare og biologiske organismer: Objektorientert design
Walter Myers III; 10. august 2018
Oversatt herfra.
I mitt siste innlegg diskuterte jeg problemet med "dårlige design" argumenter. Jeg har også tilbudt et forsvar av designteori ved å demonstrere overgripende detalj, og detalj av virveldyrøyne i forhold til enhver visuelt enhet laget av selv de lyseste menneskelige sinn. Faktisk, når vi undersøker de ulike øynene i høyere dyr, ser vi de samme moderne objektorienterte programvaredesign prinsippene som dataprogrammerne bruker til å bygge applikasjoner vi bruker hver dag. Det inkluderer kjørekoden til nettleseren som viser denne artikkelen. Formell objektorientert programmering, som en metode som brukes av mennesker, har kun eksistert siden 1950-tallet -her. Likevel er det klart representert i den biologiske verden som går tilbake til utseendet til de første encellede organismene for 3,5 milliarder år siden (i form av organeller som kjerne, ribosom, mitokondrier, Golgi-apparat etc.).
Bilde 1. Et falkøye, av Oussama dzlion [ CC BY-SA 4.0 ], fra Wikimedia Commons.
Øyet i høyerestående dyr
La oss se på øyet, som bare er et av mange delsystemer (sammen med hjernen, hjertet, leveren, lungene osv.) Hos høyere dyr som koordinerer oppgavene deres for å holde en organisme levende. Jeg diskuterte så mye i en tidligere artikkel -her, som sammenlignet koden til moderne datasystemer til DNA-koden som utføres for å bygge og vedlikeholde biologiske organismer. I dataprogrammering er det en veldig dårlig rutine å skrive kode, viljestyrt og forvente at den skal utføre en nyttig funksjon. Meget komplekse dataprogrammer er alltid angitt av et sett krav som skisserer funksjonaliteten, presentasjonen og brukerens samvirke med programmet. Hver av disse kalles vanligvis en funksjonell spesifikasjon. (Moderne fleksible programvare-utviklingsteknikker i mange lag bruker nå er mer av en evolusjonær prosess -her, men krever fortsatt at det jobbes fra en bakgrunn av krav gjennom progressive korte iterasjoner.)
Med hensyn til øyet i organismer som chordater, bløtdyr og ledddyr, kan funksjonelle krav (eller etterslokk, i smidige termer) på et høyt nivå se slik ut :
1. Samle tilgjengelig lys
2. Reguler lysstyrken gjennom en membran
3. Fokuser lys gjennom linser for å danne et bilde
4. Konverter bilder til elektriske signaler
5. Overfør signaler til hjernens visuelle behandlingssenter
6. Behandle visuelle detaljer, bygge en representasjon av omgivelsene
Dette settet med spesifikasjoner bør ikke tas lett på. å anta at blinde, ikke-styrte prosesser kan generere ny funksjonalitet som løser et svært komplekst ingeniørproblem, som vi ser ovenfor, er svært fantasifull. Disse spesifikasjonene krever et passende grensesnitt for øyet (i dette tilfellet den optiske nerven) som forbinder den med den visuelle cortexen. Det krever en visuell cortex som vil behandle bildene, som da må ha et grensesnitt med en hjerne som senere kan lede hele organismen til å reagere på omgivelsene.
Menneskelige designere kan bare grovt tilnærme noe av dette. Likevel, så komplisert som øyet kan være, er det en liten, men kritisk komponent i hele systemet som utgjør en høyere biologisk organisme. I tillegg til utformingen av komplekse systemer må settet av krav kartlegge til en arkitektur som definerer systemets høytliggende struktur i form og funksjon, og fremmer gjenbruk av komponentdeler på tvers av forskjellige programvareprosjekter. Vi ser slike komponenter gjenbruk i biologiske organismer, med forskjellige typer av øyne som et godt eksempel.
Et utvalg av øyeformater
Forskere mener det er i utgangspunktet ti forskjellige øyeoppsett (design) som forekommer i naturen. Fra et programmerings-perspektiv kan vi se dette generelt som et tre-nivå, objektorientert hierarki som kan beskrive dyreøyne, som vist i klassediagrammet nedenfor.
På øverste nivå har vi øyeklassen som for enkelhets skyld består minimalt av en samling av en eller flere fotoreseptorer og en optisk nerve som overfører bilder til den visuelle cortexen. (Merk den fylte diamantformen som representerer sammensetning i forhold mellom helhet og del.) øyeklassen selv er "abstrakt" i den forstand at de ikke kan bli laget som forekomster i seg selv, men gir egenskapene som trengs av alle dens undergrupper som på et eller annet nivå vil være forekomster som et øye av en gitt type. På andre nivå har vi de enkle og sammensatte øyetyper som har en arvelig forbindelse med øyeklassen. Dette betyr at disse to øyetyper arver alle egenskapene til den abstrakte Eye-Base-klassen, sammen med de nødvendige komponentene. Disse klassene er også abstrakte. På tredje nivå har vi klasseobjekter som arver alle egenskapene til enten Simple eller Compound-klassene. På dette nivået har vi fortsatt abstrakte klasser som vil ha alle egenskapene eller komponentene som er nødvendige for å eksistere i et hvilket som helst høyere dyr, men krever ytterligere differensiering på artsnivå for å være riktig 'satt sammen'.
Bilde 2. Eye-H1
La oss nå ta en nærmere titt på Refractive Cornea-øyeoppsettet, som er tilstede hos de fleste pattedyr, fugler og reptiler. Refraktive Cornea-klassediagrammet nedenfor viser hovedkomponentene som det er sammensatt av, som er en linse, sclera, iris, hornhinnen, uvea og netthinnen.
Mennesker og Falker
Det som er viktig er ikke bare de spesifikke delene, men strukturelt hvordan disse delene er entydig opprettet i dyrearter med forbedringer basert på de spesifikke kravene til habitatet de bor i. For eksempel, selv om mennesker og falker har de samme grunnleggende komponentene i brytning og hornhinne øyetype, er de strukturelt ganske forskjellige, som sett her.
Bilde 3. Eye-H2
Kravene til en falkens brytnings hornhinne øyetype inkluderer at den kan finne sitt bytte over store avstander. Dette betyr at det i forhold til mennesker trenger en større linse, mer vannfylt sammenføyning for å nære hornhinnen, en mer konveks netthinne og en høyere konsentrasjon av lyssamlende staver. For å hjelpe dyktige dykkere i høy hastighet, som kan overstige 200 miles per time, har falkeøyet også en gjennomskinnelig nikkitasjons-membran (tredje øyelokk) for å fjerne eventuelle rusk ved dykk og også holde øynene fuktige. På komponentnivået til brytnings-hornhinnen, er det selv om mennesker og falker deler like komponenter generelt, vesentlig forskjellige arkitektoniske egenskaper og funksjoner som må implementeres ved styring av DNA-koden som besittes av hver organisme.
Bilde 4. Eye-H3
Så, la oss nå se på det forenklede klassehierarkiet for menneske -og falke øyne. På nivået med forekomster, hvor vi finner klassene under øye og refraktive hornhinner under de menneskelige øynene og falke-øyene under, må de implementere komponent-grensesnittene for sine arter. I tilfelle av Falcon-eye klassen, samler den også Nictitating Membrane-klassen som er tilknyttet den som en art (og andre fuglearter, for eksempel den skallede ørnen).
Konvergent Evolusjon?
Jeg er sikker på at darwinistiske evolusjonister vil argumentere for at denne klassediagramkonstruksjonen bare er en som kommer etter det som er etablert, og støtter det som er beskrevet som konvergent evolusjon over arter, hvor urelaterte organismer utvikler lignende egenskaper basert på å måtte tilpasse seg habitatene der de finner seg selv. Faktisk tror evolusjonære biologer at øyet, som de innrømmer, er nøyaktig konstruert, har utviklet seg selvstendig over femti ganger -her.
Likevel, når vi sammenligner svært komplekse dataprogrammer med biologiske organismer, er selv de mest komplekse programmene designet av bokstavelig talt de beste doktorgraden på planeten bleke i forhold til de enkleste biologiske organismer. å si at evolusjonen, som er blind, ikke-styrt, og liter fullt ut på tilfeldige tilfeldige mutasjoner, vil løse det samme ingeniørproblemet flere ganger gjennom det som er hovedsakelig mutasjons-flaks, er urealistisk gitt statistisk forsvinnende liten sannsynlighet over de korte tidslinjene på endog hundrevis av millioner år. Men når vi ser på de ulike øyeformene som er diskutert her, er det klart at de hver for seg oppfyller et sett av spesifikke krav, etter prinsipper for objektorientert design som vi forventer fra en masterprogrammerer.
Oversettelse og bilder ved Asbjørn E. Lund